# -*- coding: utf-8 -*-
import xlrd
import os

#获取文件绝对路径
file=os.path.join(os.path.dirname(os.getcwd()),'data','合并单元格.xlsx')

#获取工作表格sheet
wbook=xlrd.open_workbook(file)
sheet=wbook.sheet_by_index(0)

#单元格的数据查询：（row,row_range,col,col_range）：row -【row_range - 1】合并
merge=sheet.merged_cells

#获取测试数据表头作为字典keys
keys=sheet.row_values(3)

#将合并的、非首行的单元格，赋值相同的数据
datas=[]
for r in range(4,sheet.nrows):
    li = []
    for c in range(sheet.ncols):
        # 读取每个单元格里的数据，合并单元格只有单元格内的第一行第一列有数据，其余空间都为空
        cell_value = sheet.row_values(r)[c]
        # 判断空数据是否在合并单元格的坐标中，获取第一行单元格的数据
        if cell_value is None or cell_value == '':
            for (rlow, rhigh, clow, chigh) in merge:
                if rlow <= r < rhigh:
                    if clow <= c < chigh:
                        cell_value = sheet.cell_value(rlow, clow)

        #将单元格的数据，赋值给非合并单元格首行的单元格
        li.append(cell_value)
        # 将表头和数据组装在一起，返回字典格式
        data = dict(zip(keys, li))
    #将当前循环的数据添加到data，获取整个表格的数据
    datas.append(data)

#将相同用例的 请求参数、字段类型、测试数据 合并为一条数据
for i in range(datas):

    if datas[i+1]['测试编号']==datas[i]['测试编号']:
        data[1]

    api_data={
        '用例名称':datas[i]['用例名称'],
        data:{
            keys:data
        }
    }

print(datas)

